class SenhaValidator < ActiveModel::Validator
  
  def validate(record)
    record.errors[:password] << "Senha igual a login" if record.password.eql?(record.login)
    record.errors[:password] << "Formato de senha invalido" unless formato_senha(record.password)
  end
  
  # A regex abaixo verifica se a senha é "forte", isto é, se a senha 
  # possui pelo menos 8 caracteres e contém pelo menos uma letra 
  # minúscula, uma letra maiúscula e um algarismo. 
  
  def formato_senha(senha)
    regex = %r{^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$}xi
    senha =~ regex
  end
  
end